package cn.hello2018.sdk.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author jeymingwu
 * @date 2019/5/8 10:39
 */
public class DateUtil {

    private static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 传入时间字符串，按照默认格式转换为日期类对象
     *
     * @param dateTime 时间字符串
     * @return 日期字符串
     */
    public static Date strToDate(String dateTime) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(STANDARD_FORMAT);
        try {
            return simpleDateFormat.parse(dateTime);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 传入时间字符串，按照指定格式转换为日期类对象
     *
     * @param dateTime  时间字符串
     * @param formatStr 指定格式
     * @return 日期字符串
     */
    public static Date strToDate(String dateTime, String formatStr) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatStr);
        try {
            return simpleDateFormat.parse(dateTime);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 传入日期类对象，按照默认格式转换为日期字符串
     *
     * @param date 日期类对象
     * @return 日期字符串
     */
    public static String dateToStr(Date date) {
        if (date == null) {
            return null;
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(STANDARD_FORMAT);
        return simpleDateFormat.format(date);
    }

    /**
     * 传入日期类对象，按照指定格式转换为日期字符串
     *
     * @param date      日期类对象
     * @param formatStr 指定格式
     * @return 时间字符串
     */
    public static String dateToStr(Date date, String formatStr) {
        if (date == null) {
            return null;
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatStr);
        return simpleDateFormat.format(date);
    }
}
